Veri Taşıyıcılarda Adresleme Düzeyleri
Kullanıcının bakış açısına göre veriler, mantıksal bir dizin yapısı içinde düzenlenmiş dosyalarda saklanır. Dizin ağaçları, RAID dizilerindeki bölümlere (mantıksal olarak ayrılmış disk bölümleri veya kümeleri) yerleştirilir. Dosyaların düzenli bir yapıda saklanması, ayrıntıları açısından önemli ölçüde farklılıklar gösteren dosya sistemleri tarafından yönetilir. Bu farklılıkların dışında tüm dosya sistemlerinde bazı benzerlikler de görebiliriz. Dosya sistemleri, dosyaları, dosya sisteminin terminolojisine bağlı olarak, kümeler (Microsoft ile ilgili dosya sistemlerinde) veya bloklar (tipik olarak Unix'ten türetilen sistemlerde) olarak adlandırılan bu tahsis edilmiş birimlere yerleştirir. Blok kavramının çok belirsiz olması nedeniyle, yanlış anlaşılmaları önlemek adına bu tahsis birimlerini belirtmek için "küme" terimini kullanacağız.
Kümelerdeki, LBA (Logical Block Addressing Mantıksal Blok Adresleme) sektörlerinin sayısı daha küçük veya daha büyük ancak her zaman ikinin kuvvetine eşittir. LBA adreslemesi, sabit disk yönetimini basitleştirmek, doğrudan fiziksel sektörlere atıfta bulunan CHS (silindir, sektör, kafa) adreslemesinin yerini almak ve farklı üreticilerin cihazları arasında uyumluluğu sağlamak için 1980'lerin ilk yarısında icat edildi. ATA ve SCSI standartları tarafından benimsenmiştir ve ayrıca çeşitli veri taşıyıcıları ile bilgi alışverişinde kullanılan diğer iletişim protokolleri tarafından da kullanılmaktadır. Veri taşıyıcısından veri okumak istenirse veya veri taşıyıcısına veri yazmak istenirse, kümelenmiş dosya sistemi adreslemesi, LBA adreslemesine dönüştürülür ve uygun komutlar ile bu adreslemedeki uygun sektörler belirtilir. Ancak, sabit diskler bir veya veya daha fazla plakadan oluşur ve bu plakalar üzerinde fiziksel sektörlere ayrılmış dairesel ve eş merkezli izler bulunur. Bu nedenle LBA adres numaralarının kendine özgü fiziksel sektörlere doğru bir şekilde atanması gerekmektedir. Bu görev, kısaca “çevirmen” olarak adlandırılan donanım yazılımının (firmware) bir parçası olan mantıksal adresi fiziksel adrese çevirme alt sistemi, tarafından gerçekleştirilir.
Flash-NAND yongalarda veri depolayan yarı iletken ortamlar için de durum benzerdir. Bunlar da LBA adresleme kullanılarak adreslenir, ancak bu tür ortamlarda plakalar, izler veya sektörler yoktur. Flash-NAND çipleri verileri sayfalar (programlama ve okuma için gereken en düşük birim) ve bloklar (silme için gereken en düşük birim) halinde adresler. Sektörler, yalnızca dış dünya ile iletişim amacıyla denetleyici tarafından emüle edilir. Ayrıca yarı iletken ortamlar söz konusu olduğunda, aygıt yazılımı, fiziksel adresleri mantıksal adreslere dönüştürmekten sorumlu olan ve genellikle Flaş Çeviri Katmanı (FTL - Flash Translation Layer) olarak adlandırılan bir kısım içerir.
LBA adreslemesi aynı zamanda RAID dizileri tarafından da kullanılır. Bir RAID dizisini adreslediğimizde, dizinin LBA adreslemesine atıfta bulunuruz. Bu adres daha sonra dizi denetleyicisi tarafından, dizinin parçası olan bireysel disklerin LBA adreslemesine dönüştürülür. Şayet dizilerin bulunduğu karmaşık bir ortamla karşı karşıyaysak, adreslememiz önce dizinin LBA adresine ve ancak ondan sonra diziyi oluşturan fiziksel disklerin LBA adresine dönüştürülür.
LBA adreslemesi aynı zamanda sanal makine dosyaları tarafından da kullanılır. Bu tür dosyaların her biri, sanal makine dosyasını tanımlayan dosya sisteminden bağımsız olarak kendi dosya sistemine de sahiptir. Ve böyle bir dosyanın içinde, sanal LBA adresine dönüştürülmüş sanal bir küme adresi bulunur, bu da sanal makinenin hangi fragmanını okumak veya yazmak istediğimizi bize bildirir. Ve yalnızca bu bilgiyle, bu adresler, sanal makine dosyasını tanımlayan dosya sisteminin gerçek kümelerine ve fiziksel ortamın gerçek LBA adreslerine dönüştürülebilir.
Boş ve Dolu Alan
Yeni bir disk aldığımızda, boş olduğunu düşünürüz. Sadece diski çalıştırdığımızda, bölümler oluşturduğumuzda, biçimlendirdiğimizde ve üzerine biraz veri yerleştirmeye başladığımızda, yavaş yavaş dolduğunu düşünmeye başlarız. Ayrıca işletim sistemi araçlarını kullanarak ne kadar boş ve ne kadar dolu alanımız olduğunu kontrol edebiliriz. Ancak, dolu ve boş alan kavramından yalnızca dosya sisteminin mantıksal yapılarıyla ilişkili olarak bahsedebiliriz.
Fiziksel anlamda, her bir veri taşıyıcı her zaman mantıksal düzeyde yorumlanamayan bir miktar bilgi depolar. Herhangi bir LBA sektörü ile ilgili olarak, mantıksal yapılar anlamında boş veya dolu bir sektörü okumak isteyip istemediğimize bakılmaksızın her zaman bir cevap alırız. Bu cevap, yeni diskler söz konusu olduğunda, 0x00 değerine sahip bir bayt dizisi olacaktır, ancak kullanılmış diskler söz konusu olduğunda bu cevap net değildir.
Bu boş alanlar bize bazen, sıfırlarla dolu sektörler gibi görünebileceği gibi, bazen de başka içerikleri içeren sektörlerin işgal edilmesi anlamına da gelebilir. Gerçekte durum farklıdır. Kullanılan alan, sıfırlarla dolu sektörler içerse bile dosya sisteminin mantıksal yapılarında ayrılan disk alanlarıdır. Bu sıfırlar bir dosyanın veya mantıksal bir yapının parçası olarak tanımlanıyorsa ve bir şekilde yorumlanabiliyorsa, bunları boş alan olarak kabul edemeyiz. Öte yandan, tutarlı ve eksiksiz dosyalar içeren alanlar da, dosya sisteminin mantıksal yapılarında uygun şekilde adreslenmezlerse, bakış açısına göre, diğer verilerin yerleştirilebileceği boş alanlar olacaktır. Bu tür adreslenmemiş dosyalar dizin yapısında görünmez, ancak üzerine yazılmadığı sürece kurtarılabilirler.
Mantıksaldan Fiziksel Adrese Çeviri Alt Sistemi
Sabit Disklerdeki Klasik Çevirmen
Onlarca yıl boyunca LBA'yı sabit disklerdeki fiziksel adreslemeye dönüştürmek nispeten basitti. Fiziksel sektörler, sürücünün nominal kapasitesinden kaynaklanan nedenden dolayı, 0'dan başlayarak son sayıya kadar sıralı LBA değerlerini aldı. LBA adresleri disk plakasının dış kenarındaki izlerden başlayarak atandı ve değerleri motor eksenine doğru ilerledikçe arttı. Bunun sebebi, daha büyük yarıçaplı izlerin daha uzun olması ve bu sayede daha kısa ve daha küçük yarıçaplı izlere göre daha fazla sektörün bu izlere yerleştirilebilmesidir.
Bu çözüm sayesinde, başlangıç konumundaki LBA sektörleri daha hızlı okunabilir, çünkü plakanın bir kez dönmesiyle daha fazla LBA sektörü okunabilmektedir. Disk test edilirken, okuma hızı grafiğinin giderek artan LBA adres numaralarıyla birlikte düştüğünü gözlemleyebiliriz. Diskin birden fazla plaka yüzeyi kullanması durumunda, belirli bir yüzeydeki numaralandırmanın sürekliliği, sonraki adreslerin diğer yüzeylere yerleştirilmesi amacıyla kesintiye uğrar. Belirli LBA adreslerinin belirli plaka yüzeylerine atanmasına kafa haritası adı verilir. Böyle bir harita bize hangi kafanın hangi LBA adres aralıklarını okuduğunu söyler.
Çevirmenin görevlerinden biri de bozuk sektörleri baypas etmektir. Çeviri alt sistemi açısından, bozuk sektörler fabrikasyon ve çalışma sırasında oluşanlar olarak ikiye ayrılır. Fabrika hataları birincil hata listesine (primary defect list, P-list) kaydedilir ve LBA adres numaraları atanırken atlanır. Diğerleri diskin çalışması sırasında ortaya çıkar ve artan hata listesine (growth defect list, G-list) kaydedilir. Zaten LBA adres numaraları atanmış olduğundan, bu numaralar yeniden eşleme (yeniden tahsis) sürecinde yedek(rezerv) sektörlere atanır.
Farklı donanım yazılımı mimarilerinde ve disk modellerinde, çeviri alt sisteminin ayrıntıları farklıdır ancak TRIM işlevinin çalışmasını anlamak için bu kadar ayrıntılı bilgiye ihtiyaç duyulmayacaktır. Aslında, LBA adreslemenin kullanıma sunulması ile Shingled Manyetik Kayıt'ın icadı arasında meydana gelen en önemli değişiklik, 512 baytlık sektörlerin 4 kilobaytlık sektörlerle (Gelişmiş Format - Advanced Format) değiştirilmesiydi. Gelişmiş Format durumunda, bir fiziksel sektör 8 LBA sektörüne karşılık gelir.
SMR Sürücüler ve İkinci Seviye Çevirmen
Sabit disk üreticileri, kayıt yoğunluğunu artırma çalışmaları sırasında, okuma kafasının, yazma kafasının yazdığına bakış çok daha dar bir izden gelen sinyali okuyabildiğini fark etti. Bu nedenle Shingled Manyetik Kayıt (SMR - Shingled Magnetic Recording) yöntemini geliştirdiler. Bu yöntemde, sonraki izler kısmen öncekilerin üzerine yazılır. Bu durum, kayıt kafasının tasarımının, asimetrik bir manyetik alan oluşturacak şekilde değiştirilmesini gerektiriyordu; böylece en güçlü sinyal, önceki ize mümkün olduğu kadar yakın kaydedilecek, ancak onunla etkileşime girmeyecekti. Shingled Manyetik Kaydı kullanıma sunmanın olumsuz bir sonucu, yazma işlemi sırasında sektöre rastgele erişimin kaybolmasıydı. Bir sektöre yeni bir içerik yazdığımızda, kafanın oluşturduğu manyetik alan, diğer izlerde bulunan sektörlerin içeriğine zarar verir. Her seferinde plakanın tüm yüzeyini yeniden yazmak zorunda kalmamak için üreticiler, izleri birkaç düzine MB kapasiteli SMR bölgeleri şeklinde gruplayıp, bu bölgeleri güvenli alanlarla ayırmaktadır.
Ancak yine de tek bir sektörde değişiklik yapmak için tüm iz grubunun yeniden yazılması gerekir. Bu durumun yazma performansı üzerinde çok olumsuz bir etkisi olduğundan, üreticiler yeni sektör içeriğini daha önce fiziksel olarak bulundukları yere değil, belirli bir durumda en uygun olan yere yazmaya karar verdiler. Bu sorunu çözmenin ayrıntıları üreticiden üreticiye değişir, ancak çözümün ortak özelliği, LBA adresinin belirli bir fiziksel adrese göreceli olarak bağlılığını engellemektedir.
SMR disklerde, LBA adres numaraları fiziksel konumlarını kolaylıkla değiştirebilir ve ayrıca ikinci seviye çevirmen bunların mevcut konumlarını takip etmek ile sorumludur. Fiziksel adreslerdeki mantıksal adreslerin konumunda olabilecek bu tür dinamik değişiklikler, diskin ürün yazılımına (firmware) bu değişikliklerin kaydedilmesine izin veren özel tabloların eklenmesini gerektirir. Pratik olarak diskte gerçekleşen her yazma işlemi, bazı LBA adreslerinin yeni fiziksel konumunu kaydetme ihtiyacıyla ilişkilidir. Bu durum, SMR disk arızasının ve verilere erişim kaybının yaygın bir nedeni olan ikinci seviye çevirmen modüllerinde hata riskinin artmasına neden olur.
Yarı İletken Ortamlarda Flaş Çeviri Katmanı
Mevcut içeriğin üzerine yazma işleminin doğrudan yapılamaması yarı iletken ortamın karakteristik bir özelliğidir. Bu durum, verilerin yarı iletken ortamlarda depolanma şekliyle alakalıdır. Yarı iletken ortamlarda veriler depolanırken elektronlar, yalnızca kayan kapısı (floating gate) boş olan transistörlere yerleştirilir ve yeniden programlanmadan önce bu kapıların silinmesi gerekir. Bu nedenle, LBA sektörünün içeriğini değiştirdiğimizde, veri farklı bir fiziksel konuma yazılır. Daha sonraki yazma işlemleri için, fiziksel bir birimde yer açmak amacıyla güncel olmayan içeriğin silinmesi gerekir.
Bu çözüm, medyada fiziksel olarak tahsis edilmiş bazı birimlerin, her zaman yeni veri yazma işlemine hazır olmasını gerektirir. Bu nedenle, LBA adreslemesi medyanın tüm fiziksel kapasitesini kapsayamaz. Erişime hazır bulunan LBA sektörlerinin sayısının medyanın fiziksel boyutuna oranı, mümkün olabilecek çok sayıda cihaz satma isteği ile bu cihazların verimli ve arızasız bir şekilde çalışmasını sağlayacak bir rezerv bulundurma ihtiyacı arasındaki bir uzlaşmadır.
Yarı iletken medyalarda veri yazma, veri silme ve LBA sektörlerinin içeriğinin düzenlenmesi işlemleri, doğrudan üzerine yazmaya izin veren manyetik medyalara göre daha karmaşıktır. LBA sektörlerinin yeni içeriklerinin farklı bir fiziksel konuma yazılması, bu yeni konumların çeviri tablolarına kaydedilmesini zorunlu kılar. Sırayla, geçersiz veri içeren bloklar, LBA adreslemesinden kaldırılarak silinir. Bu şekil veri yönetiminde LBA adresleri fiziksel olarak tahsis edilmiş birimlere bağlı değildir, ancak gerçekleştirilen işlemler bu birimlerin etrafında döner.
Yarı iletken medyalar söz konusu olduğunda ek olarak ortaya çıkan bir komplikasyon da, iki farklı tahsis birimi kullanmalarıdır. Bu tahsis birimleri: okuma ve programlama işlemlerinin minimum birimi olan sayfalar ile silme işleminin minimum birimi olan bloklardır. Sayfaların boyutları, genellikle 1 ila 32 512 baytlık LBA sektörlerinin (bir sayfadaki sayıları her zaman 2’nin kuvvetleri şeklindedir) yanı sıra, medyanın doğru bir şekilde çalışması için gerekli olan yedek bilgilerin depolanmasına da olanak tanır. Buna karşılık, bloklar birkaç sayfa ila birkaç yüz sayfayı içerir; bir bloktaki sayfa sayısı ikinin kuvveti şeklindeydi, ancak son birkaç yıldır bu kurala uyulmamaktadır.
Bu, pratikte LBA sektör düzeyinde medya içeriğinde meydana gelen değişikliklerin, fiziksel tahsis birimlerinin hem mevcut içeriğe sahip LBA sektörlerini hem de eski olanları aynı anda içerebileceği anlamına gelmektedir. Bu durum, yeni veriyi kabul etmeye hazır boş blokların sayısında azalma başladığında sorunlu hale gelir. Yarı iletken ortamların karşılaştığı bir diğer sorun ise silme ve yazma işlemleri nedeniyle aşınma ve yıpranma olup, bu da eninde sonunda cihazın arızalanmasına yol açar. TRIM fonksiyonunun uygulanmasının temelini oluşturan da bu problemlerdir.
TRIM SSD'lerde Nasıl Çalışır?
Teorik olarak ve kullanıcı perspektifinden bakıldığında TRIM fonksiyonunun temeli, dosya sisteminin mantıksal yapılarında tahsis edilmemiş verilerin fiziksel olarak depolanmasına gerek olmamasıdır. Çeviri alt sisteminin, hangi sektörlerin dosyalara veya bunları tanımlayan mantıksal yapıları barındıran alanlara ait olduğunu ve hangilerinin mantıksal anlamda boş alan olduğunu bilmesi yeterlidir. İkinci durumda (mantıksal anlamda boş alan olması durumunda), denetleyici, talep edilen sektörleri fiziksel olarak okumak yerine, sıfırlarla dolu sektörleri (boş sektörleri) yanıt olarak anında gönderebilir.
TRIM fonksiyonunun çalışmasında, nadir dosyalara (sparse files) benzer bir durum görülebilir. Bu durumda büyük bir kısmı sıfırlarla doldurulmuş dosyanın, disk bölümüne fiziksel olarak yazılması gerekmez. Bazı dosya sistemlerinde, meta verilerin, sıfırlarla doldurulmuş kaç küme olduğunu ve dosya okunurken tam olarak nereye eklenmeleri gerektiği gibi bilgileri içermesi yeterlidir. Ve eğer SSD diskin aygıt yazılımı, benzer bilgilerin flaş çeviri katmanına dahil edilmesine izin veriyorsa, çevirmen aranan sektörlerin fiziksel konumunu aramayacak, bunun yerine denetleyiciye bunların "boş" sektörler olduğunu bildirecektir.
SSD'lere TRIM fonksiyonunun eklenmesiyle performansları arttı. Diskin "boş alanda" bulunan sektörleri fiziksel olarak okumaya gerek kalmaması, daha hızlı yanıt alabileceğimiz anlamına gelir. Ayrıca daha fazla silinmiş blok tutabiliriz; bu durum sadece yazma performansına olumlu etki etmekle kalmaz, aynı zamanda programlama ve silme işlemlerinden kaynaklanan ortam yükünü azaltır ve yıpranma düzeltme algoritmalarının (wear-leveling algorithms) çalışmasını kolaylaştırır.
Depolama ortamları bu verileri yorumlayamayıp sadece depoladığından, TRIM fonksiyonunun çalışabilmesi için sabit disk yazılımı tarafından desteklenmesinin yanı sıra dosya sistemlerinin mantıksal yapıları düzeyinde neler olup bittiğine dair bir bilgi kaynağına da ihtiyaç vardır. Diskin hangi sektörlerin kullanıldığını, hangilerinin kullanılmadığını bir şekilde bilmesi gerekir. Bu konuya ilişkin bilgiler, disk bölümlerindeki dosya sistemlerini yöneten işletim sistemi tarafından denetleyiciye sağlanır. Şu anda, kullanımda olan çoğu işletim sistemi TRIM işlevini destekler ve bu işlev için destek varsayılan olarak etkindir.
Ancak, işletim sistemi her durumda desteklenen tüm dosya sistemleri için TRIM işlevini desteklemez. Hem sistemin hem de medyanın TRIM fonksiyonunu desteklemesine rağmen işletim sistemi bazı disklerle işbirliği yapmak istemez. Bu duruma bir örnek, Apple dışındaki tedarikçilerin SSD'lerini desteklemek için harici yazılım gerektiren MacOS'un eski sürümleri olabilir.
TRIM fonksiyonunun çalışabilmesi için, medyayla haberleşmek için kullanılan iletişim protokolünün de bu fonksiyonu desteklemesi gerekir. Bu nedenle TRIM, ATA standardının 8. sürümüyle uyumlu olmayan eski donanımlarda çalışmayacaktır. RAID dizi denetleyicilerinin TRIM’i destekleme işleviyle ilgili sorunlar da olabilir. Bu fonksiyon birçok USB adaptörü tarafından da desteklenmez. TRIM fonksiyonunun SCSI karşılığı UNMAP'dir.
Flash-NAND Çiplerde Veri Dağıtımı
Yarı iletken medyadaki veriler ardışık olarak yazılmaz, veriler tahsis edilmiş farklı fiziksel birimlere dağıtılır. Bu durum, medyanın performansı ve dayanıklılığıyla ilgili birçok faktörden dolayıdır. Flash-NAND belleklerin yani bu çipleri kullanan medyaların performansı, birçok diskte paralel veri işleyen RAID dizilerine benzer şekilde -birçok bellekte paralel veri işlediğinden- oldukça yavaştır.
Veri dağıtımının ikinci önemli nedeni, veri yazma ve silme sırasında açığa çıkan Joule ısısıdır. Flash-NAND yongalarda gerçekleşen programlama ve silme işlemleri, yonga içindeki voltajın artırılmasını gerektirir ve enerji kayıplarıyla ilişkili olan Fowler-Nordheim tünellemesi adlı kuantum mekaniği fenomenini kullanır. Flash-NAND yongalardaki fiziksel yazma işlemi ardışık olarak gerçekleştirilirse, yonganın yerel olarak aşırı ısınması nedeniyle sık sık bellek hasarı meydana gelebilir.
Bu nedenle, bu bellekler genellikle mantıksal olarak iki veya dört parçaya bölünür ve veriler bu parçalar arasında dağıtılarak yazılır. Yukarıdaki nedenlerden dolayı, yarı iletken ortamlarda yazılan verilere ait bitişik konumdaki LBA sektörleri çoğunlukla fiziksel olarak farklı sayfalara dağıtılır. Okuma hatalarının oluştuğu medyalarda bu durum kolaylıkla fark edilir. Böyle bir ortamı tararken, genellikle sağlıklı olanlarla iç içe geçmiş hasarlı sektör dizileri gözlemlenebilir. Bu tür hasarlı sektörler hasarlı sayfadan okunurken, aralarındaki doğru bir şekilde okunan sektörler ise sağlıklı sayfalara yerleştirilir.
Kullanım Dışı Verileri Temizleme
LBA adresleme düzeyinde değişiklik yaparken, değiştirilen sektörlerin içeriği diğer fiziksel bloklarda bulunan fiziksel sayfalara yazılır. Bloklar çok fazla sayıda sayfa içerdiğinden (yüzlerce sayfa) bloklar içerisinde güncel olan ve güncel olmayan sayfalarla karşılaşmak mümkündür. Bloklar, güncel sayfa içerdiği sürece silinemez ve yeni verileri kabul etmeye hazır duruma getirilemez.
Bu durum, medyanın adreslemesini yönetim açısından çok sakıncalıdır. Çünkü çok fazla bloğun az sayıda güncel içerikli sayfa içermesi ve dolayısıyla da silinememesi söz konusu olabilir. Bu durum, silinen blokların sayısında önemli bir azalmaya neden olabilir ve dolayısıyla da yeni veri yazma işlemini zorlaştırabilir. Ancak mantıksal açıdan bakıldığında ortamda hala yeterli boş alan bulunmaktadır.
Bu sorunu çözmek için kullanım dışı verileri temizleme (garbage collection) prosedürü kullanılır. Kullanım dışı verileri temizleme, RAM’da bulunan kullanım dışı verileri temizleme prosedüründen esinlenmiştir. Burada yapılan şey, nispeten daha az sayıda geçerli sayfa içeren bloklardaki geçerli verileri taşıma işlemidir. Bu durumda artık geçerli veri içermeyen bloklar silinebilir duruma gelir. Bu işlem genellikle arka planda, ortam denetleyicisinin meşgul olmadığı zamanda gerçekleşir. TRIM işlevi, kullanım dışı verileri temizleme sırasında mantıksal düzeyde silinmiş ancak güncel verileri içeren sayfaların atlanmasına olanak tanır. Bu durum, yalnızca medyanın çalışmasını hızlandırmakla kalmaz, aynı zamanda yazma ve silme işlemlerindeki yükü de azaltır.
TRIM, SMR Sürücülere Neden Dahil Edilmiştir?
SMR diskleri söz konusu olduğunda, TRIM işlevinin kullanılması, veri yazma işlemi sırasında ilgili sektöre rastgele erişim kaybından kaynaklıdır. Bu durum, üreticileri veri yazma esnasında SMR disklerin performansını korumak için çözümler aramaya zorladı. Bu da mantıksal-fiziksel adres çeviri alt sisteminin karmaşık olmasına yol açtı. Farklı disk üreticileri, SMR disklere veri yazma sorununa farklı yaklaşımlar kullanır.
Kullanılan çözümlerden biri, konvansiyonel olarak kayıtlı bir iz arabelleği - Medya Önbelleği (Media Cache)- kullanılmasıdır. Diske gelen veriler arabelleğe yazılır ve ancak daha sonra-disk kullanıcı komutlarını yürütmekle yükümlü olmadığında- uygun SMR bölgelerine aktarılır. Bu sayede çoğu durumda, tüm SMR bölgelerinin yeniden yazılması ve Medya Önbelleği arabelleğinin düzenlenmesi gibi uzun bir süreç, kullanıcının fark edemeyeceği bir şekilde arka planda gerçekleşebilir. Bu gibi durumlarda, Medya Önbelleği, arabelleği doldurabilir ve yazma hızı önemli ölçüde azaltılabilir.
Başka bir yaklaşım da verileri doğrudan SMR bölgelerine yazmaktır. Bu bölgeler, genellikle yazma işleminden önce belirlenen LBA sektörlerinin bulunduğu bölgelerden farklıdır. Burada, yarı iletken medyalarda gerçekleşen, fiziksel tahsis birimleri arasındaki LBA adres rotasyonuna benzer bir durum söz konusudur. Sabit diskler gibi manyetik medyalarda silme işlemine gerek kalmasa da, doğrudan var olan verilerin üzerine yazabildiğimizden, SMR bölgesini yeniden yazarken değişmeyen sektörlerin içeriklerine zarar vermek istemeyiz.
Dolayısıyla yukarıda belirtilen her iki çözümde de TRIM fonksiyonunun kullanılmasının disk performansına olumlu etkisi bulunmaktadır. Sürücü, yazma işlemi sırasında, dosya sistemlerinin mantıksal yapılarında hangi alanların tahsis edilmediğini bilir, bu nedenle bunları hedef konuma yazmak için gereken zamandan tasarruf eder, yine sürücü okuma işlemi sırasında da “boş alan” içeren sektörleri fiziksel olarak aramak zorunda kalmaz, bunun yerine sıfırlarla dolu sektörleri harici arayüze sunabildiği durumlarda zamandan tasarruf eder. Çünkü katı hal (solid state) medyalardan farklı olarak yazma işlemleri sabit diskleri yıpratmaz, TRIM ise SSD'lerde olduğu gibi kullanım ömürlerini etkilemez.
TRIM Fonksiyonunun Pratik Sonuçları
Veri Kurtarma ve Adli Bilişim
TRIM fonksiyonunu kullanan medyalarda verilerin mantıksal düzeyde silinmiş olması, LBA adresleme düzeyinde çalışırken silinen dosyaları kurtaramayacağımız anlamına gelir. Bunun nedeni, bu dosyaları içeren sektörleri okuma isteğine yanıt olarak diskin sıfırlarla dolu sektörleri döndürmesidir. Bununla birlikte, fiziksel düzeyde bu veriler hala mevcut olabilir. Ancak sabit disklerde ve SSD'lerde durum farklıdır.
Yarı iletken medyaların verileri fiziksel olarak silmeleri gerektiğinden, içeriğin fiziksel olarak yok edilmesi süreci, temelde mantıksal düzeyde silme işleminden hemen sonra başlar. Daha da önemlisi, bu işlemin aygıt yazılımı düzeyinde yani medya güç kaynağına bağlı olduğu sürece bilgisayardan alınan diğer komutlardan bağımsız bir şekilde gerçekleşmesidir ve adli bilişimde yaygın olarak kullanılan yazma engelleyiciler kullanılarak silme işlemi durdurulamaz. Blok silme işlemi, bellek yongalarının lehimlerinin sökülüp programlayıcıda okunmasıyla veya SSD'nin servis moduna (güvenli mod - safe mode) alınmasıyla durdurulabilir.
Flash-NAND çiplerin lehimlerinin sökülmesi durumunda veri kurtarma işlemi pratikte bir dizi engelle karşılaşabilir; bu engellerin en ciddisi ise şifrelemedir. Günümüzde şifreleme, yalnızca veri güvenliğinin bir unsuru olarak pazarlandığı için değil, aynı zamanda şifreleme algoritmalarının verileri iyi bir şekilde rastgeleleştirmesi ve bu sayede bit okuma hatalarının oluşumunu azaltmaya yardımcı olması nedeniyle de SSD'lerde yaygın olarak kullanılmaktadır. Şifrelemenin kullanılmadığı durumlarda, genellikle matematiksel olarak çözülmesi zor olan dinamik rastgeleleştirme kullanılır. Bellek yongalarının ikili (binary) görüntülerinin kodunu çözerken karşılaşılabilecek bir diğer büyük engel, amacı fiziksel olarak depolanan verinin hacmini ve dolayısıyla yongaları yıpratan yazma işlemlerinin sayısını azaltmak olan dahili sıkıştırmadır. Bu nedenle, her durumda medyanın lehiminin sökülmesi etkili veri kurtarmayı vaat eden bir çözüm değildir.
Bir alternatif ise SSD'yi servis moduna almaktır; bu durumda denetleyicinin belleğe doğrudan erişimi olmaz. Servis modu arka plandaki işlemleri engellerken fiziksel adreslemeye erişebiliyorsanız, verilerin henüz fiziksel olarak silinmemiş kısımlarını kurtarabilirsiniz. Bununla birlikte, TRIM tarafından mantıksal düzeyde silindiği belirtilen verilerin, fiziksel olarak silinmesi işlemi bir ila birkaç düzine dakika kadar sürebileceğinden, herhangi bir şeyin bu yollarla kurtarılma şansı oldukça yanıltıcıdır.
Veri silme işlemlerini desteklemeyen sabit disklerde durum biraz daha iyidir. Sabit disklerde, fiziksel adreslerdeki mantıksal olarak silinen veriler, başka içerikler üzerine yazılana kadar bozulmadan kalır. Yanıt süresi ve TRIM desteği durumunda güç kaynağının bağlanması gibi unsurlar veri kurtarma açısından o kadar da kritik değildir. Ancak SMR sürücülerin arka plan işlemlerinden arındırılmış olmadığı unutulmamalıdır; örneğin Medya Önbelleği organizasyonu, birbirinden ayrı sektörler üzerine yazılmaz, ancak tüm SMR bölgelerinin üzerine yazılır.
Veri İmhası
TRIM fonksiyonu, verilerin imha sürecinde imha işleminin doğru bir şekilde gerçekleştirilip gerçekleştirilmediğinin kontrolünü zorlaştırır. Bu, mantıksal düzeyde, verilerin etkili bir şekilde yok edildiğini, fiziksel adresleme düzeyinde ise verilerin hala var olduğunu ve kurtarılabileceğini ima eden bir karşılıktır. Ancak daha sonra, arka planda gerçekleşen blok silme işlemleri, gerçek anlamda verilerin imhasına neden olur.
Ayrıca, hem yarı iletken medyalarda hem de SMR sürücülerde, LBA adreslemesi dışında kalan alanlarda silinmemiş verilerin bulunma riski vardır. Bu risk sabit disklerde daha da fazladır, çünkü yarı iletken medyalarda LBA adreslemesi dışında kalan blokların fiziksel olarak silinmesi gerekir. Bu nedenle, veri imhası için, medyanın fiziksel adreslemesine daha yakın çalışma yeteneğine sahip olan ve etkili bir şekilde veri imhası gerçekleştirmesi gereken Güvenli Silme (Secure Erase) prosedürünün kullanılması oldukça yaygın olarak tavsiye edilir.
Bununla birlikte, bazen medyanın ürün yazılımında bulunan Güvenli Silme prosedürünü uygulama konusunda şüpheler vardır. Aya Fukami, eMMC belleklerinde Güvenli Silme prosedürünün yanlış uygulanmasına dair ilginç bir örneği Flaş Veri Kurtarma ve Dijital Adli Bilişim Zirvesi 2024 Konferansında (Flash Data Recovery & Digital Forensic Summit 2024) göstermiştir. Aya Fukami, "VNR’yi kullanarak eMMC güvenlik özelliklerinden yararlanma" ("Exploiting the eMMC security features using the VNR") başlıklı sunumunda Güvenli Silme. İşleminin gerçekleştirilmiş olmasına ve LBA adresleme düzeyinde içeriği sıfırlarla dolu sektörlerin döndürülmüş olmasına rağmen eMMC yonga içeriklerinin neredeyse %100’ünün kurtarılabileceğini gösterdi. Ancak fiziksel adresleme düzeyine inildiğinde, fiziksel adresleme birimlerinin içeriğinin çok az hasar gördüğünü ve büyük bir kısmının kurtarılabilir olduğu sonucunu gösterdi.
Bu nedenle verileri imha ederken Güvenli Silme işleminin zamanlamasına dikkat etmek gerekir. Eğer bu işlem, ortamın tamamını yazmak için gereken zamandan daha kısa bir sürede, şüpheli bir hızla gerçekleştirilirse, verilerin fiziksel olarak yok edilmediği ve yalnızca mantıksal-fiziksel adres çeviri alt sistemine has işlemlerin yapıldığı muhtemeldir. Şifrelenmiş medyalarda ayrıca şifreleme anahtarının imha edilmesi (cryptoerase) de mümkün olup, bu da işlemin güvenliğini önemli ölçüde artırmaktadır. Ancak bu tür durumlarda Güvenli Silme işleminin uygulanmasına çok güvenmemek ve tüm ortamın üzerine yazarak verileri yok etmek daha doğru olacaktır.
TRIM Nasıl Kapatılır?
Windows İşletim Sisteminde Kapatma
Komut istemini (cmd) yönetici olarak çalıştırın ve aşağıdaki komutu yazın:
fsutil behavior set disabledeletenotify 1
Linux İşletim Sisteminde Kapatma
Linux'ta işler o kadar basit değildir. Linux ortamında kullanılan dosya sistemleri farklı Linux dağıtımları nedeniyle birbirinden farklıdır, ayrıntılar için belgeleri kontrol etmek gerekebilir. Tipik olarak, Linux'taki TRIM işlevi, bir dosyanın mantıksal olarak silinmesi işleminden hemen sonra diske bilgi veren "discard" parametresi veya manuel ya da belirtilen zaman aralıklarında otomatik olarak (örneğin systemd servis yöneticisi kullanılarak) boşaltılan mantıksal alanlar hakkındaki bilgiyi denetleyiciye iletecek olan fstrim komutu tarafından ele alınabilir. Bölüm bağlama parametreleri etc/fstab yapılandırma dosyasına kaydedilir ve burada kontrol edilmelidir. Bazı dosya sistemlerinde TRIM desteğinin varsayılan olarak ("nodiscard" parametresi bunu devre dışı bırakmak için kullanılır) veya süperblok parametrelerinde bir bayrak ayarlanarak etkinleştirilmiş olabileceği unutulmamalıdır.
MacOS İşletim Sisteminde Kapatma
Terminale şunu yazın:
sudo trimforce disable
Yönetici parolasını girin ve değişiklikleri onaylayın. Onayladıktan sonra bilgisayar otomatik olarak yeniden başlatılacaktır.